แก่นแท้อันแท้จริงของวิทยาการคอมพิวเตอร์ไม่ใช่การศึกษาคอมพิวเตอร์เอง แต่เป็นการศึกษา“การแก้ปัญหา (Problem Solving)”ด้านวิทยาศาสตร์ นี่คือศิลปะแห่งการแปลงความยุ่งเหยิงซับซ้อนในโลกความเป็นจริงให้กลายเป็นขั้นตอนเชิงตรรกะที่แม่นยำ
เสาหลักสามประการ
- อัลกอริธึม (Algorithm):จิตวิญญาณของการแก้ปัญหา มันคือกระบวนการที่มีขั้นตอนจำกัด ซึ่งกำหนดว่าปัญหานี้สามารถทำได้หรือไม่คำนวณได้ (Computable).
- การเขียนโปรแกรม (Programming):กระบวนการแปลอัลกอริธึมให้กลายเป็นภาษาที่คอมพิวเตอร์เข้าใจได้ (เช่น ภาษา Python) มันคือสะพานเชื่อมระหว่างการนามธรรมทางตรรกะกับการปฏิบัติทางกายภาพ
- การนามธรรมตามกระบวนการ (Procedural Abstraction):อาวุธสุดท้ายในการจัดการความซับซ้อน โดยการซ่อนรายละเอียดการดำเนินการไว้ภายใน 'กล่องดำ' ผู้เขียนโปรแกรมจึงสามารถโฟกัสที่ 'จะทำอะไร' แทนที่จะสนใจ 'จะทำอย่างไร'
ปรัชญาของกล่องดำสำหรับนักพัฒนา
เมื่อคุณเรียกใช้
math.sqrt(16) คุณไม่จำเป็นต้องรู้ว่าด้านล่างนั้นใช้วิธีการประมาณแบบนิวตันหรือการแบ่งครึ่งเพื่อหาคำตอบ ความสามารถในการประเภทข้อมูลนามธรรม (ADT) คือต้นแบบของแนวคิด: การแยกแยะการแสดงผลทางตรรกะของข้อมูลออกจากวิธีการปฏิบัติทางกายภาพอย่างสมบูรณ์